// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  const db = cloud.database()
  const {
    id
  } = event.data

  const [getErr, getSuccess] = await awaitWrap(
    db.collection('menus').where({
      _id: id
    }).get()
  )

  console.log(getSuccess)
  let browseNum = 0
  if (getSuccess) {
    browseNum = getSuccess.data[0].browseNum === undefined ? 1 : getSuccess.data[0].browseNum + 1
  } else {
    return {
      errorMsg: getErr
    }
  }

  // 4.开始使用数据库语句
  const [err, success] = await awaitWrap(
    db.collection('menus').where({
      _id: id
    }).update({
      // data 字段表示需更新字段放入对象
      data: {
        browseNum
      }
    })
  )
  if (success) {
    return {
      msg: 'success'
    }
  } else {
    return {
      errorMsg: err
    }
  }
}

// await错误处理公共方法
const awaitWrap = (promise) => {
  return promise
    .then(success => [null, success])
    .catch(err => [err, null])
}